home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 1320 / 1320.xpi / chrome / gmanager.jar / content / utils / prefs.js < prev    next >
Text File  |  2010-01-22  |  3KB  |  121 lines

  1. // Gmail Manager
  2. // By Todd Long <longfocus@gmail.com>
  3. // http://www.longfocus.com/firefox/gmanager/
  4.  
  5. var gmanager_Prefs = new function()
  6. {
  7.   this.__proto__ = new gmanager_BundlePrefix("gmanager-prefs-");
  8.   
  9.   this.NOTIFY_CHANGED = "gmanager-prefs-notify-changed";
  10.   this.ELEMENT_PREFIX = "gm-prefs-";
  11.   this.BRANCH = "longfocus.gmanager.";
  12.   
  13.   this.init = function()
  14.   {
  15.     var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService);
  16.     this._prefBranch = prefService.getBranch(this.BRANCH);
  17.   }
  18.   
  19.   this.hasPref = function(aName)
  20.   {
  21.     return this._prefBranch.prefHasUserValue(aName);
  22.   }
  23.   
  24.   this.getBoolPref = function(aName)
  25.   {
  26.     return this._prefBranch.getBoolPref(aName);
  27.   }
  28.   
  29.   this.setBoolPref = function(aName, aValue)
  30.   {
  31.     this._prefBranch.setBoolPref(aName, aValue);
  32.   }
  33.   
  34.   this.getCharPref = function(aName)
  35.   {
  36.     return this._prefBranch.getCharPref(aName);
  37.   }
  38.   
  39.   this.setCharPref = function(aName, aValue)
  40.   {
  41.     this._prefBranch.setCharPref(aName, aValue);
  42.   }
  43.   
  44.   this.getIntPref = function(aName)
  45.   {
  46.     return this._prefBranch.getIntPref(aName);
  47.   }
  48.   
  49.   this.setIntPref = function(aName, aValue)
  50.   {
  51.     this._prefBranch.setIntPref(aName, aValue);
  52.   }
  53.   
  54.   this.loadPrefs = function(aNode, aDocument)
  55.   {
  56.     var prefs = aNode.getElementsByTagName("pref");
  57.     
  58.     for (var i = 0; i < prefs.length; i++)
  59.     {
  60.       var pref = prefs.item(i);
  61.       var element = aDocument.getElementById(this.ELEMENT_PREFIX + pref.getAttribute("id"));
  62.       
  63.       if (element)
  64.       {
  65.         var value = pref.getAttribute("value");
  66.         
  67.         switch (element.localName)
  68.         {
  69.           case "checkbox":
  70.             element.checked = (value == "true" ? true : false);
  71.             break;
  72.           case "menupopup":
  73.             element.parentNode.value = value;
  74.             
  75.             if (!element.parentNode.selectedItem)
  76.               element.parentNode.selectedItem = element.firstChild;
  77.             
  78.             break;
  79.           case "radiogroup":
  80.           case "textbox":
  81.             element.value = value;
  82.             break;
  83.           default:
  84.             break;
  85.         }
  86.       }
  87.     }
  88.   }
  89.   
  90.   this.savePrefs = function(aNode, aDocument)
  91.   {
  92.     var prefs = aNode.getElementsByTagName("pref");
  93.     
  94.     for (var i = 0; i < prefs.length; i++)
  95.     {
  96.       var pref = prefs.item(i);
  97.       var element = aDocument.getElementById(this.ELEMENT_PREFIX + pref.getAttribute("id"));
  98.       
  99.       if (element)
  100.       {
  101.         switch (element.localName)
  102.         {
  103.           case "checkbox":
  104.             pref.setAttribute("value", element.checked);
  105.             break;
  106.           case "menupopup":
  107.             pref.setAttribute("value", element.parentNode.value);
  108.             break;
  109.           case "radiogroup":
  110.           case "textbox":
  111.             pref.setAttribute("value", element.value);
  112.             break;
  113.           default:
  114.             break;
  115.         }
  116.       }
  117.     }
  118.   }
  119.   
  120.   this.init();
  121. }